package nyist.media.service;

import nyist.media.entity.admin.Admin;
import nyist.media.enums.ApplyStatus;
import nyist.media.page.AppPage;
import nyist.media.vo.ApplyRecordVO;
import org.springframework.data.domain.PageRequest;

/**
 * 维修申请单
 *
 * @author dcf
 * @date 2019/3/18
 */
public interface ApplyRecordService {

    /**
     * 分页查询申请单
     *
     * @param pageRequest 分页对象
     * @param status 申请单状态 0: 申请中 1:申请通过 2:申请失败
     * @return 维修单记录
     */
    AppPage<ApplyRecordVO> findPage(PageRequest pageRequest, ApplyStatus status);

    /**
     * 申请单审核
     * @param applyRecordId 申请单ID
     * @param adminId 管理员ID
     */
    void auditApplyRecord(Long applyRecordId, Long adminId);

    /**
     * 申请单驳回
     * @param id 驳回申请单
     */
    void rejectedApplyRecord(Long id);

    /**
     * 查看我的申请单
     * @param pageRequest 分页对象
     * @param currentInfo 当前登录对象
     * @return 我的申请单列表
     */
    AppPage<ApplyRecordVO> findMyPage(PageRequest pageRequest, Admin currentInfo);

    /**
     * 删除申请单
     * @param id 我的申请单ID
     */
    void deleteOne(Long id);
}
